An iconic programming system is a "programming-less" environment where programming is done by connecting graphical images of devices (icons), together with connecting lines, to create an iconic network which represents a software program. The iconic programming system may be used in research and development test environments, where several different electronic instruments are connected to test a system or device. Programming such a system requires instructions to cause the various instruments to perform desired functions in order to operate as a system.
When an iconic programming system is used, each instrument will be represented by a graphical icon, also called a graphical object, and the connections between the instruments are represented by connecting lines between the graphical icon images. Each device may have multiple lines connecting from other devices, bringing data into the device for it to use during its execution. Each device may also have multiple output lines connecting to other devices, to pass its new or changed data on to the other devices in the program. In addition to graphical icons representing instruments in such a system, graphical icons are provided for programming functions, for example looping, IF-THEN statements, etc. By combining instrument and programming icons, a user can create an iconic network involving the programmed operation of several instruments. An example of a simple iconic network is shown in FIG. 2, described below.
When the program runs, each device executes in turn, and during its execution, each device may use the data on its input lines, modify it, and put the same or other data on its output lines for other devices to use.
One difficulty encountered in designing and creating an iconic network is the problem of debugging the network. Although some prior art systems show the type of data on a line connecting two icons, none provide a way of determining the value of the data that is sent on an output line and received by another icon. One method used in the prior art is to connect a display icon to a connecting line, however this requires anticipating which lines will encounter problems. For example, if a network has been running for a long time, and the user/programmer suddenly wants to see the data on a line which does not have a display icon connected to it, the network must be stopped, a display connected to the line, and the network restarted. This may take considerable time, and it will only work if the network performs in exactly the same manner when restarted. If the input data to the network is unpredictable, the network may not perform in the same way, and the user/programmer may have to examine a different line, which would require repeating this process.
There is a need in the art then for a system that will interactively probe an arbitrary line, so that the user can observe the data, if any, present on the line. There is further need for such a system that will display the data type, whether the data is scalar or array, the number of dimensions and dimensions sizes, if the data is an array, the data values, and any mappings on the data. There is a still further need for such a system that is capable of displaying control lines or error lines that may carry a boolean or error value. The present invention meets these needs.
Various features and components of an iconic network system are disclosed in U.S. patent applications:
(A) Application Ser. No. 07/483,478 filed Feb. 22, 1990 for PROGRAMMING ESCAPE FROM AN ICONIC SYSTEM of Bailey, Beethe, Wolber, and Williams; PA1 (B) Application Ser. No. 07/537,550 filed Jun. 13, 1990 for PROCESSING METHOD FOR AN ICONIC PROGRAMMING SYSTEM of Beethe;
which are each hereby specifically incorporated by reference for all that is disclosed therein.